package com.beiming.libra.domain.dto.requestdto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import lombok.Data;

@Data
@ApiModel("用户基本信息实体")
public class UserRequestDTO implements Serializable {

  /**
   * 用户id
   */
  @ApiModelProperty(value = "用户id", hidden = false)
  private String userId;

  /**
   * 身份类型（个人：0/机构:1）
   */
  @ApiModelProperty(value = "身份类型", hidden = false)
  private String userType;

  /**
   * 关联类型（当事人/代理人）
   */
  @ApiModelProperty(value = "关联类型:0 当事人, 1 代理人")
  private String relationType;

  /**
   * 姓名/组织机构名称
   */
  @ApiModelProperty(value = "姓名/组织机构名称", hidden = false)
  private String userName;

  /**
   * 邮箱
   */
  @ApiModelProperty(value = "邮箱", hidden = false)
  private String email;
  /**
   * 手机号
   */
  @ApiModelProperty(value = "手机号", hidden = false)
  private String mobilePhone;

  /**
   * 身份证号码/组织机构代码
   */
  @ApiModelProperty(value = "身份证号码/组织机构代码", hidden = false)
  private String code;

  /**
   * 性别
   */
  @ApiModelProperty(value = "性别", hidden = false)
  private String sex;

  /**
   * 民族
   */
  @ApiModelProperty(value = "民族", hidden = false)
  private String civilFamily;

  /**
   * 企业负责人
   */
  @ApiModelProperty(value = "企业负责人", hidden = false)
  private String responsibleUser;

  /**
   * 企业负责人电话
   */
  @ApiModelProperty(value = "企业负责人电话", hidden = false)
  private String responsiblePhone;

  /**
   * 法定代表人
   */
  @ApiModelProperty(value = "法定代表人", hidden = false)
  private String legalUser;

  /**
   * 法定代表人职务
   */
  @ApiModelProperty(value = "法定代表人职务", hidden = false)
  private String legalUserJob;

  /**
   * 固定电话
   */
  @ApiModelProperty(value = "固定电话", hidden = false)
  private String fixedTelephone;

  /**
   * 组织机构代码证件
   */
  @ApiModelProperty(value = "组织机构代码证件", hidden = false)
  private String organizationCode;

  /**
   * 身份证正面
   */
  @ApiModelProperty(value = "身份证正面", hidden = true)
  private String idCardFrontUrl;

  /**
   * 身份证反面
   */
  @ApiModelProperty(value = "身份证反面", hidden = true)
  private String idCardBackUrl;

  /**
   * 户籍地址/注册地址
   */
  @ApiModelProperty(value = "户籍地址/注册地址", hidden = false)
  private String permanentAddress;

  /**
   * 当前地址/企业所在地址
   */
  @ApiModelProperty(value = "当前地址/企业所在地址", hidden = false)
  private String currentAddress;

  /**
   * 邮寄地址
   */
  @ApiModelProperty(value = "邮寄地址", hidden = false)
  private String mailAddress;

  /**
   * 户籍地址/注册地址详细地址
   */
  @ApiModelProperty(value = "户籍地址/注册地址详细地址", hidden = false)
  private String pdetailAddress;

  /**
   * 当前地址/企业所在地址详细地址
   */
  @ApiModelProperty(value = "当前地址/企业所在地址详细地址", hidden = false)
  private String cdetailAddress;

  /**
   * 邮寄地址详细地址
   */
  @ApiModelProperty(value = "邮寄地址详细地址", hidden = false)
  private String mdetailAddress;

  //================分页信息==========================
  /**
   * 每页条数
   */
  @ApiModelProperty(value = "每页条数", required = false, hidden = false)
  private Integer pageSize;


  /**
   * 第几页
   */
  @ApiModelProperty(value = "第几页", required = false, hidden = false)
  private Integer pageNo;

  /**
   * 排序字段
   */
  @ApiModelProperty(hidden = true)
  private String sortField;

  /**
   * 升序，降序
   */
  @ApiModelProperty(hidden = true)
  private String direction;

  public Integer getPageSize() {
    if (pageSize == null) {
      this.pageSize = 10;
    }
    return pageSize;
  }

  public void setPageSize(Integer pageSize) {
    this.pageSize = pageSize;
  }

  public Integer getPageNo() {
    if (pageNo == null) {
      this.pageNo = 1;
    }
    return pageNo;
  }

  @Override
  public String toString() {
    return "QueryPageParam [pageSize=" + pageSize + ", pageNo=" + pageNo + ", sortField="
        + sortField + ", direction=" + direction + "]";
  }
}
